﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Specialized;

namespace PoserLoot.Web.Models
{
    public interface IService
    {
        // Category methods
        bool CreateCategory(Category category);
        bool DeleteCategory(Guid categoryId);
        bool EditCategory(Category category);
        Category GetCategory(Guid categoryId);
        IEnumerable<Category> ListCategories();

        // Entry methods
        bool CreateEntry(Entry entry);
        bool DeleteEntry(Guid entryId);
        bool EditEntry(Entry entry);
        Entry GetEntry(Guid entryId);
        IEnumerable<Entry> ListEntries(Guid? categoryId);
        IEnumerable<Entry> ListEntries(string keyword);

        // File methods
        bool CreateFile(File file);
        bool DeleteFile(Guid fileId);
        bool EditFile(File file);
        File GetFile(Guid fileId);
        IEnumerable<File> ListFiles(Guid entryId);

        // Gallery methods
        bool CreateGallery(Gallery gallery);
        bool DeleteGallery(Guid galleryId);
        bool EditGallery(Gallery gallery);
        Gallery GetGallery(Guid galleryId);
        IEnumerable<Gallery> ListGallerys(Guid entryId);
        System.IO.Stream GetGalleryOriginalStream(Guid galleryId);
        System.IO.Stream GetGalleryThumbnailStream(Guid galleryId);

        // Comment methods
        bool CreateComment(Comment comment);
        bool DeleteComment(Guid commentId);
        bool EditComment(Comment comment);
        Comment GetComment(Guid commentId);
        IEnumerable<Comment> ListComments(Guid entryId);
    }
}
